\chapter{Интерфейс пользователя}

Вариантов использования довольно много и не все из них предусмотрены в учебном приложении. Это может быть как изменение структуры данных, так и работа со студентами и сотрудниками. Общая схема вариантов использования проекта представлена на рисунке \ref{pic:usecase}.
\begin{figure}[h!]
  \centering
  \includegraphics[width=\linewidth]{resources/usecase}
  \caption{Диаграмма прецедентов}
  \label{pic:usecase}
\end{figure}

Приложение имеет удобный графический веб-интерфейс. Для его работы требуется любой браузер, поддерживающий cookie и Java Script. На рисунке \ref{pic:main_page} изображена титульная страница, которая ждёт пользователя, зашедшего на сайт системы.

\begin{figure}[h!]
  \centering
  \includegraphics[width=0.9\linewidth]{resources/main_page}
  \caption{Главная страница}
  \label{pic:main_page}
\end{figure}

Администратор системы может получить доступ к модели. На рисунке \ref{pic:person_types} изображена страница для просмотра всех типов персон, зарегистированных в системе. С этой страницы можно получить доступ к изменению модели.

\begin{figure}[h!]
  \centering
  \includegraphics[width=0.6\linewidth]{resources/person_types}
  \caption{Список типов данных}
  \label{pic:person_types}
\end{figure}

Можно зарегистрировать в системе новый тип данных, пройдя по соответствующей ссылке. На рисунке \ref{pic:new_person_type} изображена страница, предназначенная для этого.

\begin{figure}[h!]
  \centering
  \includegraphics[width=0.6\linewidth]{resources/new_person_type}
  \caption{Создание нового типа данных}
  \label{pic:new_person_type}
\end{figure}

Существует функция просмотра определённого типа данных. В этом случае на странице отсутствуют элементы управления, предназначенные для изменения. Эта страница показана на рисунке \ref{pic:show_person_type}.

\begin{figure}[h!]
  \centering
  \includegraphics[width=0.6\linewidth]{resources/show_person_type}
  \caption{Просмотр типа данных}
  \label{pic:show_person_type}
\end{figure}

Есть также страница для изменения типа данных. Она позволяет изменять структуру данных без нарушения работы приложения. Этот вариант страницы показан на рисунке \ref{pic:edit_person_type}.

\begin{figure}[h!]
  \centering
  \includegraphics[width=0.6\linewidth]{resources/edit_person_type}
  \caption{Редактирование типа данных}
  \label{pic:edit_person_type}
\end{figure}

Видно, что можно подцеплять к типу атрибуты прямо на странице изменения, там же есть элементы управления для создания новых атрибутов. Можно кроме того получить доступ непосредственно к странице атрибутов (см.~рис.~\ref{pic:attributes}) и управлять ими оттуда.

\begin{figure}[h!]
  \centering
  \includegraphics[width=0.8\linewidth]{resources/attributes}
  \caption{Доступ к атрибутам}
  \label{pic:attributes}
\end{figure}

Разумеется, имеется доступ и к самим данным. На рисунке \ref{pic:persons} изображена страница для просмотра всех персон. На неё можно перейти с заглавной страницы.

\begin{figure}[h!]
  \centering
  \includegraphics[width=0.7\linewidth]{resources/persons}
  \caption{Просмотр списка объектов}
  \label{pic:persons}
\end{figure}

Можно просматривать персону без возможности изменения (см.~рис.~\ref{pic:show_person}). На этой странице показываются все параметры персоны, а также группы, в которых она состоит, и события, в которых она принимает участие.

\begin{figure}[h!]
  \centering
  \includegraphics[width=0.6\linewidth]{resources/show_person}
  \caption{Просмотр персоны}
  \label{pic:show_person}
\end{figure}

Имеется также страница редактирования данных. Поля параметров валидируются на стороне сервера исходя из их типов. Реакция системы на неверный ввод параметра изображена на рисунке \ref{pic:edit_error}.

\begin{figure}[h!]
  \centering
  \includegraphics[width=\linewidth]{resources/edit_error}
  \caption{Реакция системы на ошибку изменения параметра}
  \label{pic:edit_error}
\end{figure}

Ясно, что имеются аналоги представленных страниц для групп и событий.
